1. Field of the Invention
The present invention generally relates to computer systems and, more particularly, to pointing devices for visual displays, such as those commonly referred to as a "mouse." The present invention is directed to hardware for such a graphical pointing device which imparts additional functionality without requiring special software drivers.
2. Description of the Prior Art
A computer system includes many components, such as the central processing unit (or processor), temporary memory for storing program instructions (like random access memory, or RAM), a permanent storage device (such as a hard disk), and a variety of user-interface devices, such as a video display, a keyboard, and a pointing device which controls the movement of a graphical pointer on the display. The graphical pointer is used to select certain areas on the screen, such as words in a text-only display, or icons in a more complicated graphical user interface (GUI). An area is selected by placing the graphical pointer over the area and then clicking one or more buttons on the pointing device. Other operations can be performed using the graphical pointer besides simple selection, such as "drag and drop" operations.
The pointing device, often referred to as a "mouse," can come in a variety of physical embodiments. The most familiar design is a hand-held unit having a ball therein which extends partially through a hole in the bottom of the unit, so that the unit can be pushed along a flat surface to cause the ball to roll. Transducers within the unit convert the motion of the ball to electrical signals which are transmitted to the processor (or a controller circuit connected to the processor), which, in turn, decodes those signals to determine how the graphical pointer on the display should be manipulated. Other physical embodiments of pointer devices include electrically sensitive pads, joysticks and joystick-type actuators, a track ball, etc.
Mouse movement, measured in units called "mickies," is a constant of the mouse itself. A certain mouse movement distance always results in the same number of mickies being reported to the host system. This fixed constant can cause problems when either large or small amounts of movement are desired. One user may find that a large movement is annoying, while another lacks the fine motor skills needed to move precise distances and directions. The current art uses software mouse drivers to control modifications to this behavior. For example, software commonly allows the user to adjust the sensitivity (i.e., speed) of the graphical pointer, such that it may be slowed down to allow finer movements, or sped up to move the pointer more quickly across the display screen. A similar software adjustment provides for "acceleration" of the graphical pointer, i.e., moving the pointer even more quickly based on the length of time that the pointer is being moved along a given direction.
While the software drivers for such pointers provide the advantage of adjusting speed and acceleration, it is often inconvenient to implement the software approach. For example, if a user is running one program, say a presentation graphics package that requires very fine pointer control, then the user must first open the software driver, make the adjustments, and return to the presentation graphics package to continue. Thereafter, if the user wishes to temporarily readjust the mouse to a less sensitive scale, then the mouse driver must again be opened and software adjustments made, leading to interruptions in program operation. Also, the availability and useability of mouse drivers is unpredictable, i.e., a given software driver might not be usable with all types of mice. Additionally, a desirable software mouse driver may not be available for all combinations of computer hardware and software. Finally, changes to an operating system may make an older mouse driver non-functional. It would, therefore, be desirable to devise a pointer device which eliminates the need for software drivers that are not universally available and can become obsolete. It would be further advantageous if the device were compatible with any software operating system, and did not require navigating various software menus and panels to change mouse behavior.